Computer systems typically include a keyboard input device that allows a user to enter data that is processed by a processor. The processor of a computer system has pre-boot and post-boot operating modes. In the pre-boot operating mode, the processor firmware processes information provided by the keyboard and allows a user to alter various settings of the computer system. In the post-boot operating mode, peripherals and peripheral handling software such as a keyboard driver have been loaded, or booted, and are now operational on the processor.
Conventional keyboard handling firmware is designed to receive scan codes (if the keyboard is a PS/2-type keyboard) or human interface device codes (HIDs) (if the keyboard is a Universal Serial Bus-type (USB-type) keyboard). Both scan codes and HIDs are forms of key location information having values that are key location dependent, regardless of the keycap value on the key being depressed. For example, on a conventional United States (U.S.) keyboard, key number 40 is assigned the keycap value of the semicolon (;). The scan code for key number 40, whether or not the semicolon is the keycap value on key number 40, is 0x4C. Similarly, the HID of key number 40, whether key number 40 has a keycap value of the semicolon or not, is 0x33. In no case does the key location information provided by the keyboard to the firmware represent the keycap value of a key. To the contrary, the key location information provided by the keyboard, whether that information is a scan code or an HID, is representative of the physical location of the key that is being depressed.
In pre-boot operating mode, the conventional firmware stores a power-on password as key location information, such as a series of scan codes or HIDs. To power up a system, an administrator is required to enter the power-on password by depressing a series of keyboard keys to generate scan codes corresponding to the stored power-on password. The firmware, upon receiving the series of scan codes/HIDs corresponding to the stored power-on password, enables further boot of the processor during which, for example, a keyboard driver may be loaded to handle input from a keyboard.
The advent of remote administration, where an administrator at a remote administration computer controls the operation of one or more client computers over a network connection, has created a situation in which, for example, an administrator on one continent can administer a client computer located on another continent. Information exchanged between the administrator and a client is formatted in, for example, a Unicode format, which is a keycap-dependent format. However, in pre-boot situations, because power-on passwords are stored in scan code/HID format and because client-administrator communication is carried out in, for example, Unicode, there is usually no correlation between the Unicode password that the administrator is typing and the power-on password that is stored in scan code/HID format. Accordingly, it is difficult or impossible for an administrator to remotely enter a power-on password for a client.